Page({
  data: {
    // 充值金额选项（id、金额、描述）
    priceOptions: [
      { id: 1, amount: 15, desc: '月度会员（30天）' },
      { id: 2, amount: 40, desc: '季度会员（90天）' },
      { id: 3, amount: 170, desc: '年度会员（365天）' },
    ],
    selectedPriceId: 1, // 默认选中第一个金额
    selectedAmount: 19, // 默认选中金额
    selectedPayType: 'wechat', // 默认选中微信支付
    isLoading: false
  },

  onLoad() {
    // 从缓存读取用户会员状态（若已登录）
    const userData = wx.getStorageSync('userData');
    if (userData?.isVip) {
      wx.showToast({ 
        title: '您已是会员，可直接享受权益', 
        icon: 'none',
        duration: 2000
      });
    }
  },

  // 返回上一页
  goback() {
    wx.navigateBack();
  },

  // 选择充值金额
  selectPrice(e) {
    const id = e.currentTarget.dataset.id;
    const selectedOption = this.data.priceOptions.find(item => item.id === id);
    this.setData({
      selectedPriceId: id,
      selectedAmount: selectedOption.amount
    });
  },

  // 选择支付方式
  selectPayType(e) {
    const type = e.currentTarget.dataset.type;
    this.setData({ selectedPayType: type });
  },

  // 确认支付（模拟）
  confirmPay() {
    const that = this;
    const { selectedAmount, selectedPayType } = this.data;
    const userData = wx.getStorageSync('userData');

    // 未登录提示
    if (!userData) {
      wx.showToast({ title: '请先登录', icon: 'none' });
      setTimeout(() => {
        wx.navigateBack(); // 返回“我的”页面
      }, 1000);
      return;
    }

    // 模拟支付加载
    that.setData({ isLoading: true });

    // 模拟支付流程（实际需调用支付接口）
    setTimeout(() => {
      // 支付成功：更新用户会员状态
      userData.isVip = true;
      // 计算会员过期时间（默认按选中套餐天数计算）
      const days = that.getVipDaysByAmount(selectedAmount);
      const expireTime = new Date();
      expireTime.setDate(expireTime.getDate() + days);
      userData.vipExpireTime = expireTime.toISOString();
      
      // 保存到缓存
      wx.setStorageSync('userData', userData);

      // 支付成功提示
      wx.showModal({
        title: '支付成功',
        content: `恭喜！您已开通${days}天会员，可享受全部会员权益～`,
        showCancel: false,
        success() {
          that.setData({ isLoading: false });
          wx.navigateBack(); // 返回“我的”页面
        }
      });
    }, 2000);
  },

  // 根据充值金额获取会员天数
  getVipDaysByAmount(amount) {
    switch (amount) {
      case 15: return 30;
      case 40: return 90;
      case 170: return 365;
      default: return 30;
    }
  }
});